home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
TPUG Xtras
/
Xtras
/
progdisk.d64
/
maze
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-02-07
|
4KB
|
156 lines
1000 DIM TT$(11):DIM TT(11)
1010 DIM A(4): A(0)=2: A(1)=-80: A(2)=-2: A(3)=80
1020 MX=21: REM MAX STRING LENGTH
1030 POKE53280,6:POKE53281,1:POKE198,0
1040 PRINT"[147]EXIT";CHR$(142)
1050 PRINTTAB(11)" "
1060 PRINTTAB(11)" THE AMAZING MAZE "
1070 PRINTTAB(11)" "
1080 PRINT "[151]"
1090 PRINT TAB(8);"THE INVISIBLE MAZE HIDES"
1100 PRINT " USE THE CURSOR KEYS TO MOVE TO THE"
1110 PRINT " EXIT AT THE UPPER LEFT HAND CORNER"
1120 PRINT TAB(9);"PRESS RUN/STOP TO QUIT"
1130 GOSUB 2210
1140 PRINT"[147]EXIT[151]"
1150 PRINTTAB(8)"PRESS F1 TO CHANGE COLOR"
1160 PRINTTAB(6)"PRESS RETURN WHEN SATISFIED"
1170 BD=0
1180 GETQ$:IFQ$<>CHR$(13)ANDQ$<>"[133]"THEN1180
1190 IFQ$=CHR$(13)THEN1220
1200 POKE53280,BD:IFBD<16THENBD=BD+1:GOTO1180
1210 BD=0:GOTO 1180
1220 PRINT"[147]EXIT[151]"
1230 PRINT" PLEASE TYPE YOUR FIRST NAME "
1240 :
1250 PRINT" (AND PRESS RETURN)"
1260 PRINT" ";:GOSUB2340:NM$=QC$:IFNM$=""THENLE=81:GOTO1280
1270 LE=ASC(LEFT$(NM$,1))-64
1280 PRINT"[147]EXIT[151]"
1290 PRINT" WOULD YOU LIKE TO SEE ME CONSTRUCT"
1300 PRINT" THE MAZE? (YES OR NO) ";
1310 GOSUB2340:KT$=QC$:IFLEFT$(KT$,1)<>"N"THENBC=15:GOTO1330
1320 WA=1:BC=0
1330 PRINT"[147]":GOSUB1550
1340 PP=253*2-47:T=TI:SA=1
1350 PRINT"[146] ELAPSED TIME : ";
1360 POKESCR+PP,LE:POKECMEM+PP,1:POKE198,0
1370 IFPP=41THEN1500
1380 J=CM+PP:POKEJ-1,5:POKEJ+1,5:POKEJ-40,5:POKEJ+40,5:POKEJ-41,5:POKEJ-39,5:POKEJ+39,5:POKEJ+41,5
1390 IFSA=1THENGETA$:IFA$=""THENT=TI:GOTO1390
1400 SA=0:GETA$:ET$=STR$(INT((TI-T)/60)):FORB=1TOLEN(ET$):PRINT"[157] [157]";:NEXT:PRINTET$;
1410 IFA$=""THEN1400
1420 A=ASC(A$):IFA=29ORA=17ORA=145ORA=157THEN1440
1430 GOTO1400
1440 IFA=29THENGOSUB1720:I=1:PP=PP+I:GOTO1480
1450 IFA=17THENGOSUB1720:I=40:PP=PP+I:GOTO1480
1460 IFA=145THENGOSUB1720:I=-40:PP=PP+I:GOTO1480
1470 IFA=157THENGOSUB1720:I=-1:PP=PP+I
1480 IFPEEK(SCR+PP)<>32THENPP=PP-I
1490 GOTO1360
1500 FORI=1TO100:POKECCTRL,255*RND(0):NEXT:POKECCTRL,1
1510 PRINT"[147][151][146]"
1520 PRINT" CONGRATULATIONS! YOU DID IT IN":PRINT" "ET$" SECONDS
1530 [141] 1750
1540 [137] 1030
1550 [151]53281,BC
1560 [153]"WAIT GENERATING MAZE ";
1570 SC[178]1024:CMEM[178]55296:CCTRL[178]53281
1580 A[178]SC[170]41:WL[178]160:HL[178]32
1590 [153]"STOP";:[129]I[178]1[164]23:[129]X[178]1[164]39:[153]" WAIT";:[130]:[153]:[130]:[151]A,5
1600 [153]""[163]37);
1610 J[178][181]([187](0)[172]4):X[178]J:
1620 B[178]A[170]A(J):[139]WA[178]1[167][141]1730
1630 [139][194](B)[178]WL[167][151]B,J[170]1:[151]A[170]A(J)[173]2,HL:A[178]B:[137]1610
1640 J[178][171](J[170]1)[172](J[179]4):[139]J[179][177]X[167]1620
1650 J[178][194](A):[151]A,HL:[139]J[179]5[167]A[178]A[171]A(J[171]1):[137]1610
1660 [153]" ";
1670 [151]53281,0:[142]
1680 J[178]CM[170]PP:[151]J[171]1,5:[151]J[170]1,5:[151]J[171]40,5:[151]J[170]40,5:[151]J[171]41,5:[151]J[171]39,5:[151]J[170]39,5:[151]J[170]41,5
1690 [142]
1700 J[178]CM[170]PP:[151]J[171]1,5:[151]J[170]1,5:[151]J[171]40,5:[151]J[170]40,5:[151]J[171]41,5:[151]J[171]39,5:[151]J[170]39,5:[151]J[170]41,5
1710 [142]
1720 [151]SCR[170]PP,32:[142]
1730 B$[178][196](B):[129]N[178]1[164][195](B$):[153]"CMD CMD";:[130]:[153]""B$"STOP";:[142]
1740 :
1750 [143] ******* TOP TEN *******
1760 PO[178]1
1770 [139] [197](ET$) [179][178] TT(PO) [176] TT(PO)[178]0 [167] 1830: [143] PO IS RANKING
1780 :[143] ELSE BEGIN
1790 :PO[178]PO[170]1
1800 :[139] PO[177]9 [167] 1940: [143] NOT TOP TEN
1810 :[143] END ELSE
1820 [137] 1770
1830 [143] PO = CURRENT RANKING
1840 [129] I[178]11 [164] PO [169] [171]1
1850 :TT(I)[178]TT(I[171]1)
1860 :TT$(I)[178]TT$(I[171]1)
1870 [130] I
1880 TT$(PO)[178]NM$
1890 TT(PO)[178][197](ET$)
1900 [153] ""
1910 [153] [163]10);"YOU ARE NOW RANKED";PO
1920 [153] [163]10);"IN THE TOP TEN SCORES."
1930 [137] 1960: [143] PRINT TOP TEN
1940 [153] " SORRY, YOU DIDN'T MAKE THE TOP TEN. "
1950 [153] [163]9);" BETTER LUCK NEXT TIME!"
1960 [141] 2210
1970 [153] "LOAD"
1980 [153] [163]15);" WAITPOKE"
1990 [153] [163]15);" WAIT WAIT"
2000 [153] [163]15);" WAIT TOP TEN WAIT"
2010 [153] [163]15);" WAIT WAIT"
2020 [153] [163]15);" WAITPOKE"
2030 [153] ""
2040 [129] I[178]1 [164] 10
2050 :PO$[178][196](I)
2060 [139] [200](PO$,1)[178]" " [167] PO$[178][202](PO$,2,[195](PO$)): [137] 2060
2070 :[139] [195](PO$)[179]2 [167] PO$[178]" "[170]PO$: [137] 2070
2080 :[139] TT(I)[178]0 [167] [137] 2170
2090 :[153] PO$;".";[166]1);TT$(I);
2100 :[129] J[178]1 [164] (MX[170]1)[171][195](TT$(I))
2110 ::[153]".";
2120 :[130] J
2130 :SC$[178][196](TT(I))
2140 [139] [200](PO$,1)[178]" " [167] PO$[178][202](PO$,2,[195](PO$)): [137] 2140
2150 :[139] [195](SC$) [179] 5 [167] SC$[178]" "[170]SC$: [137] 2140
2160 :[153] SC$;" SECONDS"
2170 [130] I
2180 [153] ""
2190 [141] 2210
2200 [142]
2210 [151] 198,0
2220 [153] ""
2230 [153] [163]6);"PRESS ANY KEY TO CONTINUE...POKE"
2240 [161] K$: [139] K$[178]"" [167] 2240
2250 [142]
2260 :
2270 [143] TEST ROUTINE
2280 :
2290 [134] TT$(11):[134] TT(11):MX[178]21
2300 [153] "NAME: ";:[141] 2340:NM$[178]QC$
2310 [153] "SCORE: ";:[141] 2340:ET$[178]QC$
2320 [141] 1750
2330 [137] 2300
2340 :
2350 [143] TYPE A LINE TO CONTINUE
2360 :
2370 [151]198,0
2372 [139] [194](207)[178]0 [167] [151] 204,0: [137] 2380
2374 [137] 2372
2380 QC$[178]""
2390 [151]908,0
2400 [139][195](QC$)[177]MX[167]2450
2410 [161]Q$:[139]Q$[178]""[167]2410
2420 [139]Q$[178][199](13)[176]Q$[178][199](141)[167]2500
2430 [139]Q$[179][177][199](157)[175]Q$[179][177][199](20)[167]2460
2440 [139]QC$[178]""[167]2390
2450 QC$[178][200](QC$,[195](QC$)[171]1):[153]"CMD CMDCMD";:[137]2390
2460 [139][198](Q$)[179]32[176][198](Q$)[177]95[167]2390
2470 QC$[178]QC$[170]Q$:[139][198](Q$)[178]34[167]:[153][199](34);[199](34);"CMD CMD";:[137]2390
2480 [153]Q$;:[137]2390
2490 [137] 2390
2500 [139] [194](207)[178]0 [167] [151] 204,1: [137] 2510
2505 [137] 2500
2510 [142]